package com.joven.product.api.business.exception;

import com.joven.infra.common.exception.ApiException;
import lombok.AllArgsConstructor;
import lombok.Getter;


@Getter
@AllArgsConstructor
public enum ExceptionEnum{

    //权限异常	100~199	权限相关异常
    //数据状态异常	200~299	数据存在性和状态校验相关的异常
    SUPPLIER_NOT_EXISTS(55200, "供应商不存在"),
    //操作异常	300~399	用户操作失败回滚抛出的异常
    //服务异常	400~499	服务调用失败/熔断抛出的异常
    //业务逻辑异常	500~599	领域层核心业务逻辑抛出的保护性的异常

    PARAM_ERROR(99001, "参数错误"),
    BPMS_PARAM_MISSING(55002, "系统参数缺失"),
    BPMS_PARAM_ERROR(55001, "系统参数类型错误"),
    BPMS_INNER_ERROR(55500, "系统内部通用异常");

    private int code;
    private String value;

    public ApiException createException() {
        return ApiException.of(this.getCode(), this.getValue());
    }
}
